// Camera.h - This is the camera class used in the oglDemos
//////////////////////////////////////////////////////////////////

// Copyright (c) Troy J. Humphreys 2004 - 
// This program is freely distributable without licensing fees  and is
// provided without guarantee or warrantee expressed or  implied. This
// program is -not- in the public domain.
#ifndef _CAMERA_H_
#define _CAMERA_H_
#pragma once

#include "vec3.h"
#include "matrix3.h"
#include <windows.h>

//////////////////////////////////////////////////////////////////
// The is the camera class for the ogl renderer.
//////////////////////////////////////////////////////////////////
class Camera
{
public:
	float3x3 m_Matrix;		// The camera's rotation matrix.
	float3 m_Position;		// The camera's position.
	bool m_bActive;
	POINT m_centerPoint;

	Camera(void);
	~Camera(void);

    //////////////////////////////////////////////////////////////////
    // This updates the camera's mouse look behavior.
    //
    // Notes:  
    //////////////////////////////////////////////////////////////////
    void update(void);	

    //////////////////////////////////////////////////////////////////
    // Applys the camera's matrix to opengl.
    // 
    // Notes:  
    //////////////////////////////////////////////////////////////////
    void applyCameraMatrix(void);
};
#endif
